package com.skiving.cloud.file.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import java.io.Serial;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 附件 实体类。
 *
 * @author skivingcloud
 * @since 2025-03-14
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("附件")
@Table("sys_file")
public class SysFile implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    @ApiModelProperty("主键")
    private String id;

    /**
     * 文件名
     */
    @ApiModelProperty("文件名")
    private String fileName;

    /**
     * 文件类型
     */
    @ApiModelProperty("文件类型")
    private String fileType;

    /**
     * 文件大小（KB）
     */
    @ApiModelProperty("文件大小（KB）")
    private Float fileSize;

    /**
     * 文件路径
     */
    @ApiModelProperty("文件路径")
    private String filePath;

    /**
     * 文件状态：1-正常、2-作废、3-删除
     */
    @ApiModelProperty("文件状态：1-正常、2-作废、3-删除")
    private String fileState;

    /**
     * 业务ID
     */
    @ApiModelProperty("业务ID")
    private String businessId;

    /**
     * 模块：字典
     */
    @ApiModelProperty("模块：字典")
    private String belongModule;

    /**
     * 说明
     */
    @ApiModelProperty("说明")
    private String memo;

    /**
     * 存储类型：fs-文件系统、hdfs-hdfs存储、fastDfs-、minIO-
     */
    @ApiModelProperty("存储类型：fs-文件系统、hdfs-hdfs存储、fastDfs-、minIO-")
    private String storeType;

    /**
     * 版本
     */
    @ApiModelProperty("版本")
    private Integer version;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private String createUser;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     * 修改人
     */
    @ApiModelProperty("修改人")
    private String modUser;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private LocalDateTime modTime;

}
